package xyz.zcq.zcqrpc.utils;

import cn.hutool.core.util.StrUtil;
import cn.hutool.setting.dialect.Props;

/**
 * 配置工具类
 */
public class ConfigUtils {

    /**
     * 加载配置对象
     * @param clazz 配置对象类
     * @param prefix 配置的前缀
     * @param environment 环境
     * @return 配置对象
     * @param <T> 配置对象类型
     */
    public static <T> T loadConfig(Class<T> clazz, String prefix, String environment) {
        StringBuilder sb = new StringBuilder("application");
        if (StrUtil.isNotBlank(environment)) {
            sb.append("-").append(environment);
        }
        sb.append(".properties");
        Props props = new Props(sb.toString());
//        props.autoLoad(true);
        return props.toBean(clazz, prefix);
    }

    /**
     * 加载配置对象
     * @param clazz 配置对象类
     * @param prefix 配置的前缀
     * @return 配置对象
     * @param <T> 配置对象类型
     */
    public static <T> T loadConfig(Class<T> clazz, String prefix) {
        return loadConfig(clazz, prefix, "");
    }

}
